package jschool.modelos;

import javax.swing.table.AbstractTableModel;

import jschool.entidades.Pago;
import jschool.manejadores.ManejadorDePago;

public class ModeloPago extends AbstractTableModel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String[] encabezado = null;
	private static ModeloPago instancia = null;
	private ManejadorDePago manejadorDePago = null;
	private Pago pago = null;

	public ModeloPago() {
		encabezado = new String[] { "Id_Estudiante", "Monto Mesual",
				"Bonificacion", "Monto Total", "Mora", "Fecha De Pago" };
		manejadorDePago = ManejadorDePago.getInstancia();

	}

	public static ModeloPago getInstancia() {
		if (instancia == null) {
			instancia = new ModeloPago();
		}
		return instancia;
	}

	public String getColumnName(int posicion) {
		return encabezado[posicion];
	}

	@Override
	public int getColumnCount() {

		return encabezado.length;
	}

	@Override
	public int getRowCount() {

		return manejadorDePago.getPagos().size();
	}

	@Override
	public Object getValueAt(int fila, int col) {
		pago = manejadorDePago.getPagos().get(fila);
		String retorno = "";
		switch (col) {
		case 0:
			retorno = String.valueOf(pago.getIdEstudiante());

			break;
		case 1:
			retorno = String.valueOf(pago.getMontoMensual());
			break;
		case 2:
			retorno = String.valueOf(pago.getBonificacion());
			break;

		case 3:
			retorno = String.valueOf(pago.getMontoTotal());
			break;

		case 4:
			retorno = String.valueOf(pago.getMora());
			break;
		case 5:
			retorno = pago.getFechaDePago();
			break;
		}

		return retorno;
	}

	public void setValueAt(Object valor, int fila, int col) {
		pago = manejadorDePago.getPagos().get(fila);
		switch (col) {

		case 1:
			pago.setMontoMensual((Integer) valor);
			break;

		case 2:
			pago.setBonificacion((Integer) valor);
			break;

		case 3:
			pago.setMontoTotal((Integer) valor);
			break;

		case 4:
			pago.setMontoMensual((Integer) valor);
			break;
		case 5:
			pago.setFechaDePago((String) valor);
			break;

		}

	}

}
